package com.whmall.service.crm.module.company.entity.qo;

import com.whmall.component.entity.dto.CompanyKeyFieldDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CompanyQO {

    private List<Long> ids;
    private Long traderId;
    private Long traderIdGt;
    private List<Long> traderIds;
    private Long csId;
    private Long purchaserId;
    private Long backPurchaserId;
    private Long vmId;
    private Long controlId;
    private String traderDepartmentPath;
    private String traderDepartmentPathPrefixLike;
    private String csDepartmentPath;
    private String purchaserDepartmentPath;
    private String vmDepartmentPath;
    private String controlDepartmentPath;
    private String name;
    private String nameLike;
    private String namePrefixLike;
    private List<Integer> companyType;
    private List<Integer> typeNotInList;
    private Integer isSupplier;
    private Integer isCustomer;
    private Integer isLogout;
    private Integer isInternal;
    private Integer supplierDevelopStatus;
    private List<Integer> supplierControlDirectorys;
    private Integer needDetect;
    private Integer verified;
    private Long updateId;
    private Date updateTime;
    private Integer isDevelopmentValue;
    private Integer isLockPersonalPoolCustomer;
    private Integer isCustomerPoolCustomer;
    private Integer isBigCustomer;
    private Integer acquisitionNumberIncrement;
    private String customerGrade;
    private Date lastInquiryTime;
    private Date lastInquiryTimeGt;
    private Date lastInquiryTimeGte;
    private Date lastInquiryTimeLte;
    private Date firstOrderTimeGte;
    private Date firstOrderTimeLte;
    private Date lastOrderTime;
    private Date lastOrderTimeGt;
    private Date lastOrderTimeGte;
    private Date lastOrderTimeLt;
    private Date lastOrderTimeLte;
    private Integer aGradeNumber;
    private Integer bGradeNumber;
    private Integer cGradeNumber;
    private Integer dGradeNumber;
    private Integer eGradeNumber;
    private Integer deleted;
    private Integer totalGradeNumber;
    private Integer hasEnterpriseCompany;

    /** 公司来源 */
    private Integer companySourceNot;
    private String orderBy;

    /**
     * 是否排除默认时间 用于 流失客户统计排除最后下单时间为1972的判断
     */
    private Integer exceptDefaultTime;

    private List<Integer> firstTypeList;

    private List<Integer> secondTypeList;

    /**
     * 创建时间开始
     */
    private Date createTimeStart;

    /**
     * 创建时间截止
     */
    private Date createTimeEnd;

    /**
     * 排除的撮合
     */
    private List<Long> traderIdNotList;

}
